package gui;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point; 
/**
**********************************************************************************************<br/>
* Grafica en el tablero de la interfaz los vertices
* @author Jefferson Amado Pe&ntilde;a Torres
**********************************************************************************************
* @see logica.Vertice
* @see Tablero
* @see java.awt.Graphics2D
* @version 0.1
*/
public class VerticeGrafico{
	private Point ubicacion;
	private String nombre;
	private Color colorPunto = Color.BLUE;
	private static final int RADIO = 10;
	/**
	*Crea un nuevo VerticeGrafico
	*@param x posicion en x
	*@param y posicion en y
	*@param nombre Nombre que recibira 
	*/
	public VerticeGrafico(int x, int y, String nombre){
		ubicacion = new Point(x, y);
		this.nombre = nombre;
	}
	/**
	*Hace visible el punto en el tablero
	*@param g graficos del tablero donde se dibujara
	*/
	public void pintarVerticeGrafico(Graphics g){
		g.setColor(Color.BLACK);
		g.drawString(nombre, ubicacion.x - 3, ubicacion.y - 3);
		g.setColor(colorPunto);
		g.fillOval(ubicacion.x, ubicacion.y, 10, 10);
	}
	/**
	*Hace visible el punto en el tablero
	*@param g graficos del tablero donde se dibujara
	*@param color asignando un color al crearlo
	*/
	public void pintarVerticeGrafico(Graphics g, Color color){
		g.setColor(Color.BLACK);
		g.drawString(nombre, ubicacion.x - 3, ubicacion.y - 3);
		g.setColor(color);
		g.fillOval(ubicacion.x, ubicacion.y, 10, 10);
	}
	/**
	*Verifica que las coordenadas cumplan con la ecuacion del circulo
	*@return <code>true<code> si cumple que (x-h)<sup>2</sup>+(y-k)<sup>2</sup>=r<sup>2</sup>,<code>false</code> si no
	*/
	public boolean ecuacionDeCirculo(Point punto){
		return (((punto.x - ubicacion.x) * (punto.x - ubicacion.x) + (punto.y - ubicacion.y) * (punto.y - ubicacion.y)) <= (RADIO * RADIO));
	}
	/**
	*Retorna la ubicacion de un VerticeGrafico
	*@return Coordenadas de un objeto Point
	*/
	public Point getUbicacion(){
		return ubicacion;
	}
	/**
	*Retorna el nombre de un VerticeGrafico
	*@return nombre de un VerticeGrafico
	*/
	public String getNombre(){
		return nombre;
	}
	/**
	*Establece la ubicacion de un VerticeGrafico
	*@param ubicacion Coordenadas de un objeto Point
	*/
	public void setUbicacion(Point ubicacion){
		this.ubicacion = ubicacion;
	}
	/**
	*Retorna el color de un VerticeGrafico
	*@return Coordenadas de un objeto Point
	*/
	public Color getColorPunto(){
		return colorPunto;
	}
	/**
	*Establece el color del VerticeGrafico 
	*@param colorPunto color del punto
	*/
	public void setColorPunto(Color colorPunto){
		this.colorPunto = colorPunto;
	}

}

